package com.css.dzj.dzjap.modules.expertcredit.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

import java.util.Date;
import java.util.Objects;

@Entity
@Table(name = "AP_EXPERT_CREDIT", schema = "DZJAP", catalog = "")
public class ApExpertCreditEntity {
    private String expertcreditId;
    private String expertName;
    private String expertIdcard;
    private String certype;
    private String expertScore;
    private String expertLevl;
    private Date assessmentDate;
    private String assessmentAuthority;
    private String specause;
    private Date abnormalPutdate;
    private String decorg;
    private String remexcpres;
    private Date remdate;
    private String redecorg;
    private String expertCode;
    private String createUser;
    private Date createTime;
    private String updateUser;
    private Date updateTime;
    private String delFlag;
    private String excpresState;
    private String scoreCause;
    private String creditRes;
    private String expertClassification;
    private String expertNotice;
    private String organName;

    @Id
    @Column(name = "EXPERTCREDIT_ID")
    @GeneratedValue(generator = "SnowflakeId")
    @GenericGenerator(name = "SnowflakeId",strategy = "com.css.dzj.dzjap.common.util.SnowflakeId")
    public String getExpertcreditId() {
        return expertcreditId;
    }

    public void setExpertcreditId(String expertcreditId) {
        this.expertcreditId = expertcreditId;
    }

    @Basic
    @Column(name = "EXPERT_NAME")
    public String getExpertName() {
        return expertName;
    }

    public void setExpertName(String expertName) {
        this.expertName = expertName;
    }

    @Basic
    @Column(name = "EXPERT_IDCARD")
    public String getExpertIdcard() {
        return expertIdcard;
    }

    public void setExpertIdcard(String expertIdcard) {
        this.expertIdcard = expertIdcard;
    }

    @Basic
    @Column(name = "CERTYPE")
    public String getCertype() {
        return certype;
    }

    public void setCertype(String certype) {
        this.certype = certype;
    }

    @Basic
    @Column(name = "EXPERT_SCORE")
    public String getExpertScore() {
        return expertScore;
    }

    public void setExpertScore(String expertScore) {
        this.expertScore = expertScore;
    }

    @Basic
    @Column(name = "EXPERT_LEVL")
    public String getExpertLevl() {
        return expertLevl;
    }

    public void setExpertLevl(String expertLevl) {
        this.expertLevl = expertLevl;
    }


    @Basic
    @Column(name = "ASSESSMENT_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getAssessmentDate() {
        return assessmentDate;
    }

    public void setAssessmentDate(Date assessmentDate) {
        this.assessmentDate = assessmentDate;
    }

    @Basic
    @Column(name = "ASSESSMENT_AUTHORITY")
    public String getAssessmentAuthority() {
        return assessmentAuthority;
    }

    public void setAssessmentAuthority(String assessmentAuthority) {
        this.assessmentAuthority = assessmentAuthority;
    }

    @Basic
    @Column(name = "SPECAUSE")
    public String getSpecause() {
        return specause;
    }

    public void setSpecause(String specause) {
        this.specause = specause;
    }

    @Basic
    @Column(name = "ABNORMAL_PUTDATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getAbnormalPutdate() {
        return abnormalPutdate;
    }

    public void setAbnormalPutdate(Date abnormalPutdate) {
        this.abnormalPutdate = abnormalPutdate;
    }

    @Basic
    @Column(name = "DECORG")
    public String getDecorg() {
        return decorg;
    }

    public void setDecorg(String decorg) {
        this.decorg = decorg;
    }


    @Basic
    @Column(name = "REMEXCPRES")
    public String getRemexcpres() {
        return remexcpres;
    }

    public void setRemexcpres(String remexcpres) {
        this.remexcpres = remexcpres;
    }


    @Basic
    @Column(name = "REMDATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getRemdate() {
        return remdate;
    }

    public void setRemdate(Date remdate) {
        this.remdate = remdate;
    }

    @Basic
    @Column(name = "REDECORG")
    public String getRedecorg() {
        return redecorg;
    }

    public void setRedecorg(String redecorg) {
        this.redecorg = redecorg;
    }

    @Basic
    @Column(name = "EXPERT_CODE")
    public String getExpertCode() {
        return expertCode;
    }

    public void setExpertCode(String expertCode) {
        this.expertCode = expertCode;
    }

    @Basic
    @Column(name = "CREATE_USER")
    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    @Basic
    @Column(name = "CREATE_TIME")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Basic
    @Column(name = "UPDATE_USER")
    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    @Basic
    @Column(name = "UPDATE_TIME")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Basic
    @Column(name = "DEL_FLAG")
    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Basic
    @Column(name = "EXCPRES_STATE")
    public String getExcpresState() {
        return excpresState;
    }

    public void setExcpresState(String excpresState) {
        this.excpresState = excpresState;
    }

    @Basic
    @Column(name = "SCORE_CAUSE")
    public String getScoreCause() {
        return scoreCause;
    }

    public void setScoreCause(String scoreCause) {
        this.scoreCause = scoreCause;
    }

    @Basic
    @Column(name = "CREDIT_RES")
    public String getCreditRes() {
        return creditRes;
    }

    public void setCreditRes(String creditRes) {
        this.creditRes = creditRes;
    }

    @Basic
    @Column(name = "EXPERT_CLASSIFICATION")
    public String getExpertClassification() {
        return expertClassification;
    }

    public void setExpertClassification(String expertClassification) {
        this.expertClassification = expertClassification;
    }

    @Basic
    @Column(name = "EXPERT_NOTICE")
    public String getExpertNotice() {
        return expertNotice;
    }

    public void setExpertNotice(String expertNotice) {
        this.expertNotice = expertNotice;
    }

    @Basic
    @Column(name = "ORGAN_NAME")
    public String getOrganName() {
        return organName;
    }

    public void setOrganName(String organName) {
        this.organName = organName;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ApExpertCreditEntity that = (ApExpertCreditEntity) o;
        return Objects.equals(expertcreditId, that.expertcreditId) &&
                Objects.equals(expertName, that.expertName) &&
                Objects.equals(expertIdcard, that.expertIdcard) &&
                Objects.equals(certype, that.certype) &&
                Objects.equals(expertScore, that.expertScore) &&
                Objects.equals(expertLevl, that.expertLevl) &&
                Objects.equals(assessmentDate, that.assessmentDate) &&
                Objects.equals(assessmentAuthority, that.assessmentAuthority) &&
                Objects.equals(specause, that.specause) &&
                Objects.equals(abnormalPutdate, that.abnormalPutdate) &&
                Objects.equals(decorg, that.decorg) &&
                Objects.equals(remexcpres, that.remexcpres) &&
                Objects.equals(remdate, that.remdate) &&
                Objects.equals(redecorg, that.redecorg) &&
                Objects.equals(expertCode, that.expertCode) &&
                Objects.equals(createUser, that.createUser) &&
                Objects.equals(createTime, that.createTime) &&
                Objects.equals(updateUser, that.updateUser) &&
                Objects.equals(updateTime, that.updateTime) &&
                Objects.equals(delFlag, that.delFlag) &&
                Objects.equals(excpresState, that.excpresState) &&
                Objects.equals(scoreCause, that.scoreCause) &&
                Objects.equals(creditRes, that.creditRes) &&
                Objects.equals(expertNotice, that.expertNotice) &&
                Objects.equals(organName, that.organName) &&
                Objects.equals(expertClassification, that.expertClassification);
    }

    @Override
    public int hashCode() {
        return Objects.hash(expertcreditId, expertName, expertIdcard, certype, expertScore, expertLevl, assessmentDate, assessmentAuthority, specause, abnormalPutdate, decorg, remexcpres, remdate, redecorg, expertCode, createUser, createTime, updateUser, updateTime, delFlag, excpresState, scoreCause, creditRes, expertClassification, expertNotice, organName);
    }
}
